package storager

// UploadConfig 通用配置
type UploadConfig struct {
	Drive       string       `json:"drive"`
	FileSize    int64        `json:"fileSize"`
	FileType    string       `json:"fileType"`
	ImageSize   int64        `json:"imageSize"`
	ImageType   string       `json:"imageType"`
	PartSize    uint64       `json:"partSize"`
	PartMaxSize uint64       `json:"partMaxSize"`
	LocalConfig *LocalConfig `json:"localConfig"`
	QiNiuConfig *QiNiuConfig `json:"QiNiuConfig"`
}

// LocalConfig 本地存储配置
type LocalConfig struct {
	Path string `json:"path"`
}

// QiNiuConfig 七牛云对象存储配置
type QiNiuConfig struct {
	AccessKey string `json:"accessKey"`
	SecretKey string `json:"secretKey"`
	Domain    string `json:"domain"`
	Bucket    string `json:"bucket"`
	Path      string `json:"path"`
}

// FileObject 文件数据集
type FileObject struct {
	Key  string    `json:"key"`
	Hash string    `json:"hash"`
	Meta *FileMeta `json:"meta"`
}

// FileMeta 文件元数据
type FileMeta struct {
	Filename string `json:"filename"` // 文件名称
	Size     int64  `json:"size"`     // 文件大小
	Kind     string `json:"kind"`     // 文件上传类型
	MimeType string `json:"mimeType"` // 文件扩展类型
	Ext      string `json:"ext"`      // 文件扩展名
	Md5      string `json:"md5"`      // 文件md5
}
